package top.infopub.enums.bpa;

import org.apache.commons.lang3.StringUtils;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public enum BpaProcessDetailTypeEnum {
    PRO_NODE_TYPE1("1", "对外合同-合同谈判"),
    PRO_NODE_TYPE2("2", "对外合同-合同评审"),
    PRO_NODE_TYPE3("3", "对外合同-承继协议"),
    PRO_NODE_TYPE4("4", "对外合同-承继协议-补充协议"),
    PRO_NODE_TYPE5("5", "对外合同-总包备案合同"),
    PRO_NODE_TYPE6("6", "对外合同清单"),
    PRO_NODE_TYPE7("7", "内部协议评审"),
    PRO_NODE_TYPE8("8", "内部协议-补充协议"),
    PRO_NODE_TYPE9("9", "分包合同评审"),
    PRO_NODE_TYPE10("10", "分包补充协议"),
    PRO_NODE_TYPE11("11", "分包合同清单"),
    PRO_NODE_TYPE12("12", "设备合同评审"),
    PRO_NODE_TYPE13("13", "设备补充协议"),
    PRO_NODE_TYPE14("14", "设备合同清单"),
    PRO_NODE_TYPE15("15", "其他合同评审"),
    PRO_NODE_TYPE16("16", "其他补充协议"),
    PRO_NODE_TYPE17("17", "其他合同清单"),
    PRO_NODE_TYPE18("18", "对外确权"),
    PRO_NODE_TYPE19("19", "对内确权"),
    PRO_NODE_TYPE20("20", "分包确权"),
    PRO_NODE_TYPE21("21", "设备确权"),
    PRO_NODE_TYPE22("22", "其他确权"),
    PRO_NODE_TYPE23("23", "项目预结算"),
    PRO_NODE_TYPE24("24", "对内结算"),
    PRO_NODE_TYPE25("25", "商务策划"),
    PRO_NODE_TYPE26("26", "结算策划"),
    PRO_NODE_TYPE27("27", "概算分批"),
    PRO_NODE_TYPE28("28", "小微评审"),
    PRO_NODE_TYPE29("29", "小微激励兑现"),
    PRO_NODE_TYPE30("30", "商务成本支付"),
    PRO_NODE_TYPE31("31", "扣款记录"),
    PRO_NODE_TYPE32("32", "年度创效计划"),
    PRO_NODE_TYPE33("33", "月度创效计划"),
    PRO_NODE_TYPE34("34", "周创效确认"),
    PRO_NODE_TYPE35("35", "创效激励兑现"),
    ;

    private String node;

    private String nodeName;

    BpaProcessDetailTypeEnum(String node, String nodeName) {
        this.node = node;
        this.nodeName = nodeName;
    }

    public static BpaProcessDetailTypeEnum getByNode(String node) {
        if (StringUtils.isBlank(node)) return null;
        for (BpaProcessDetailTypeEnum ppdt : BpaProcessDetailTypeEnum.values()) {
            if (StringUtils.equals(node, ppdt.getNode())) {
                return ppdt;
            }
        }
        return null;
    }

    public static List<Map<String, String>> asList() {
        List<Map<String, String>> list = new ArrayList<>();
        Map<String, String> map;
        for (BpaProcessDetailTypeEnum pce : BpaProcessDetailTypeEnum.values()) {
            map = new HashMap<>();
            map.put("node", pce.getNode());
            map.put("nodeName", pce.getNodeName());
            list.add(map);
        }
        return list;
    }

    public String getNode() {
        return node;
    }

    public void setNode(String node) {
        this.node = node;
    }

    public String getNodeName() {
        return nodeName;
    }

    public void setNodeName(String nodeName) {
        this.nodeName = nodeName;
    }
}
